Technical Field
The present disclosure concerns network load. More particularly, the present disclosure relates to a socket migration-based solution for reducing transmission pathway lengths within a distributed network.
Description of the Related Art
In large distributed data stores with on-demand retrieval (e.g., Google® cache, Facebook® servers, Gmail® servers, Instagram® servers, and the like), a given data server may not be topologically near the network server handling client requests (e.g., a request for an image stored at a distant network database). As a result, the data server must transfer data responses across the internal network to the request server that handled the client request. The request server must then transfer the response to a router (or, in many cases, a series of routers). Finally, the router must transfer the response to the client. These existing data transfer approaches result in burdened transmission pathways that are longer than they need be and ultimately place additional load on the network.
Although existing processes involve socket migration to a degree (e.g., migratory TCP, MSOCKS, MIGSOCK, TCP migration), none of them address the foregoing problem. For instance, some of the existing solutions are used in the context of server failover (e.g., where one server fails, another server will pick up the socket), but they do not reduce the amount of network traversed by the data. In other cases, socket information is transferred to migrate a process while the process is running (e.g., MOSIX or NOMADS), but those technologies, too, fail to reduce the amount of network traversed by the data. Moreover, existing migration processes are limited to migrating sockets between the same process running on different machines (e.g., in the case of server failover migration) or migrating a socket with a process (e.g., in the case of MOSES). These processes fail to reduce transmission pathway lengths, result in unnecessary load on the network, and as a result are limited in their utility. Moreover, the foregoing solutions are limited insofar as they are typically used to migrate sockets between machines that are nearby. As a result, they are not suitable for socket migrations across large distributed networks (e.g., across different subnets or across the country).
Other existing processes involve passing socket information as well (e.g., TCP splice, NAT, proxy, or SSL termination devices), but they require copying of data, additional sockets, and new TCP sequence numbers and checksums to effectively transmit a response back to the client. In short, they contribute to high load on the network by requiring secondary connections and multiple relays of data.
Given those shortcomings in the art, there is a need for improved socket migration-based systems and methods that reduce network load.